home *** CD-ROM | disk | FTP | other *** search
- // Graphics Importer and Exporter Samples
- // Originally written by Sam Bushell for QuickTime "Live" '99
- // WWDC 2000 Introduction to QuickTime
-
- #include "MacShell.h"
- #include <SIOUX.h>
-
- // globals
- // ------------------------
- BitMap screenBits;
- Boolean gDone = false;
-
- static void doMenu( long menuSelection )
- {
- short whichMenu = HiWord(menuSelection);
- short whichMenuItem = LoWord(menuSelection);
-
- switch (whichMenu) {
- case kAppleMenuID:
- switch (whichMenuItem) {
- case kAppleMenuAbout:
- Alert(128, NULL);
- break;
-
- default:
- break;
- }
- break;
-
- case kFileMenuID:
- switch (whichMenuItem) {
- case kFileMenuQuit:
- gDone = true;
- break;
- }
- break;
-
- case kDemoMenuID:
- switch (whichMenuItem) {
- case kDemoMenuDraw:
- DrawImage();
- break;
- case kDemoMenuScaleRotate:
- ScaleAndRotate();
- break;
- case kDemoMenuAlpha:
- AlphaComposite();
- break;
- case kDemoMenuMoreInfo:
- GetMoreInfo();
- break;
- case kDemoMenuMultipleImage:
- MultipleImage();
- break;
- case kDemoMenuURLImage:
- ImageFromURL();
- break;
- case kDemoMenuFiltersExport:
- FilterExport();
- break;
- case kDemoMenuMovieImage:
- MovieToImage();
- break;
- default:
- break;
- } // switch
- }
- }
-
- void pause( void )
- {
- EventRecord event;
- Str255 saveTitle;
-
- if( FrontWindow() ) {
- GetWTitle( FrontWindow(), saveTitle );
- SetWTitle( FrontWindow(), "\p(paused)" );
- }
-
- do {
- // wait
- } while( false == WaitNextEvent( mDownMask + keyDownMask, &event, -1, NULL ) );
-
- if( FrontWindow() )
- SetWTitle( FrontWindow(), saveTitle );
- }
-
- Boolean IsQuickTimeInstalled(void)
- {
- OSErr err;
- long lResult;
-
- err = Gestalt(gestaltQuickTime, &lResult);
- return (err == noErr);
- }
-
- int main( void )
- {
- // initialize for carbon & QuickTime
- InitCursor();
- if ( IsQuickTimeInstalled() )
- EnterMovies();
- else
- goto bail;
-
- GetQDGlobalsScreenBits( &screenBits );
-
- SetMenuBar(GetNewMBar(128));
- DrawMenuBar();
-
- while (gDone == false) {
- EventRecord theEvent;
- WindowPtr pWhichWindow;
- short windowPart;
-
- WaitNextEvent(everyEvent, &theEvent, -1, NULL);
-
- if ( !SIOUXHandleOneEvent(&theEvent) ) {
-
- switch (theEvent.what) {
- case updateEvt:
- pWhichWindow = (WindowPtr)theEvent.message;
-
- // we don't do anything for this simple sample
- BeginUpdate(pWhichWindow);
- EndUpdate(pWhichWindow);
- break;
-
- case keyDown:
- if (theEvent.modifiers & cmdKey) {
- doMenu(MenuKey(theEvent.message & charCodeMask));
- }
- break;
-
- case mouseDown:
- windowPart = FindWindow(theEvent.where, &pWhichWindow);
-
- switch (windowPart) {
- case inDrag:
- DragWindow(pWhichWindow, theEvent.where, &screenBits.bounds);
- break;
-
- case inGoAway:
- if (TrackGoAway(pWhichWindow, theEvent.where))
- DisposeWindow( pWhichWindow );
- //gDone = true;
- break;
-
- case inContent:
- SelectWindow(pWhichWindow);
- break;
-
- case inMenuBar:
- doMenu(MenuSelect(theEvent.where));
- break;
- }
- break;
- }
- }
- }
-
- bail:
-
- return 0;
- }
-